package com.neusoft.db;

import java.sql.SQLException;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;

import com.neusoft.myutils.MyUtil;

public class DBProvider {
	
	/**
	 * 使用dbutils查询数据库
	 * 
	 * @param sql
	 * 			查询语句
	 * @param rsh
	 * 			结果集类型
	 * @param params
	 * 			SQL语句的查询参数
	 * @return 查询结果集
	 */
	public <T> T query(String sql,ResultSetHandler<T> rsh,Object... params) {
		//默认返回值
		T result = null;
		try {
			//创建一个查询对象queryrunner
			QueryRunner qr = new QueryRunner(DBDataSource.getDataSourceInstance(), true);
			//查询操作
			result = qr.query(sql, rsh, params);
		} catch (SQLException e) {
			MyUtil.logRootLogger.debug("dbutils查询操作异常："+e.getMessage());
			e.printStackTrace();
		}
		return result;
		
	}
	
	/**
	 * dbutils对数据库的增、删、改操作
	 * 
	 * @param sql
	 * 			sql语句
	 * @param params
	 * 			sql语句的参数
	 * @return 增、删、改数据库影响的记录条数
	 */
	public int update(String sql,Object... params) {
		//默認返回值
		int result = 0;
		try {
			//创建一个查询对象
			QueryRunner qr = new QueryRunner(DBDataSource.getDataSourceInstance(), true);
			//sql操作
			result = qr.update(sql, params);
		} catch (SQLException e) {
			MyUtil.logRootLogger.debug("dbutils对数据库进行增、删、改异常："+e.getMessage());
			e.printStackTrace();
		}
		return result;
	}
}
